package flp.gui;

import flp.exceptions.LayoutBuildException;
import java.awt.Component;
import javax.swing.JOptionPane;

/**
 * Klasa zajmujaca sie obsluga wyjatkow.
 * 
 * @author Necro
 */
public class ExceptionHandler {
    
    /** Flaga sygnalizujaca ze wyjatek zostal rzucony. */
    private static boolean isOn = false;
    
    /**
     * Metoda uniwersalna do obslugi wyjatkow.
     * 
     * @param parent Komponent wzgledem ktorego umieszczane jest okno dialogowe.
     * @param e Obslugiwany wyjatek.
     */
    public static void handle(Component parent,Exception e){
        if (e instanceof LayoutBuildException){
                showWarningPane(parent);
                System.err.println("Input Data Error");    
            } 
        else {
            showErrorPane(parent);
            
            e.printStackTrace();
            System.exit(-1);
        }
            
    }
    
    /**
     * Metoda obslugujaca LayoutBuildException.
     * 
     * @param parent Komponent wzgledem ktorego umieszczane jest okno dialogowe.
     */
    public static void showWarningPane(Component parent){
      
       JOptionPane.showMessageDialog(parent,"Nałożone ograniczenia uniemożliwiają proces optymalizacji.","Bład danych", JOptionPane.ERROR_MESSAGE);
    }
    
    /**
     * Metoda obslugujaca krytyczne wyjatki.
     * 
     * @param parent Komponent wzgledem ktorego umieszczane jest okno dialogowe.
     */
    private static void showErrorPane(Component parent){
      
      JOptionPane.showMessageDialog(parent, "Wystąpił krytyczny wyjątek podczas działania programu,\nnastąpi jego zamknięcie",
                                    "Krytyczny wyjątek",JOptionPane.ERROR_MESSAGE);  
    }
}
